using System;
using System.Collections.Generic;
using Volo.Abp.Application.Dtos;

namespace ERP.OrderManage.Dtos
{
    /// <summary>
    /// 销售发货订单 DTO
    /// </summary>
    public class SaleSendOrderDto : EntityDto<int>
    {
        /// <summary>
        /// 订单编码
        /// </summary>
        public string OrderCode { get; set; }

        /// <summary>
        /// 关联订单编码
        /// </summary>
        public string RelatedOrderCode { get; set; }

        /// <summary>
        /// 订单日期
        /// </summary>
        public DateTime OrderDate { get; set; }

        /// <summary>
        /// 发货类型
        /// </summary>
        public string DeliveryType { get; set; }

        /// <summary>
        /// 仓库编码
        /// </summary>
        public string WarehouseCode { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        public string CustomerName { get; set; }

        /// <summary>
        /// 客户编码
        /// </summary>
        public string CustomerCode { get; set; }

        /// <summary>
        /// 联系人
        /// </summary>
        public string ContactPerson { get; set; }

        /// <summary>
        /// 业务员
        /// </summary>
        public string Salesperson { get; set; }

        /// <summary>
        /// 支付方式
        /// </summary>
        public string PaymentMethod { get; set; }

        /// <summary>
        /// 币别
        /// </summary>
        public string BaseCurrency { get; set; }

        /// <summary>
        /// 交易货币
        /// </summary>
        public string TransactionCurrency { get; set; }

        /// <summary>
        /// 总金额
        /// </summary>
        public decimal TotalAmount { get; set; }

        /// <summary>
        /// 总数量
        /// </summary>
        public decimal? TotalQuantity { get; set; }

        /// <summary>
        /// 总件数
        /// </summary>
        public int? TotalPackages { get; set; }

        /// <summary>
        /// 送货地址
        /// </summary>
        public string DeliveryAddress { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remarks { get; set; }

        /// <summary>
        /// 创建者
        /// </summary>
        public string CreatedBy { get; set; }

        /// <summary>
        /// 更新者
        /// </summary>
        public string UpdatedBy { get; set; }

        /// <summary>
        /// 订单状态 (0:草稿, 1:已确认, 2:审批中, 3:已审批, 4:已拒绝)
        /// </summary>
        public int State { get; set; }

        /// <summary>
        /// 订单状态文本
        /// </summary>
        public string OrderStatusText { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? RecordCreateTime { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? RecordUpdateTime { get; set; }

        /// <summary>
        /// 明细列表
        /// </summary>
        public List<SaleSendOrderDetailDto> Details { get; set; } = new List<SaleSendOrderDetailDto>();
    }
} 